Historiquement, le C++ ne disposait pas d'une méthode unifiée pour interagir avec les services matériels, contraignant les développeurs à « silos de plateformes » où les bases de code étaient fragmentées par des API spécifiques au système d'exploitation comme Win32 ou POSIX. Cette diapositive marque le passage vers une ère moderne où la Bibliothèque standard C++ agit comme une couche d'abstraction universelle.
1. La fin du spaghetti #ifdef
Avant la normalisation, des tâches simples telles que lancer un thread ou naviguer dans un répertoire nécessitaient des macros du préprocesseur pour gérer des en-têtes système divergents (par exemple, <windows.h> ou <pthread.h>). Cela a conduit à un code volumineux et difficile à maintenir.
2. Le changement de paradigme C++11
La norme a commencé à reprendre le contrôle sur les ressources système. Plus précisément, le C++11 a ajouté des fonctionnalités de concurrence de haut niveau incluant std::thread, std::mutex et std::future, ce qui a standardisé la relation du langage avec le processeur.
3. Découplage de la logique des fournisseurs
En dépassant le code spécifique à la plateforme, la Bibliothèque standard offre une garantie « écrivez une fois, compilez partout ». La charge de la maintenance de la plateforme passe du développeur au fournisseur du compilateur.